package common

import (
	"github.com/bytedance/sonic"
)

func JsonString(v any) string {
	bytes, err := sonic.Marshal(v)
	if err != nil {
		Logger.Errorf("json string error:%v", err)
	}
	return string(bytes)
}

func JsonBytes(v any) []byte {
	bytes, err := sonic.Marshal(v)
	if err != nil {
		Logger.Errorf("json string error:%v", err)
	}
	return bytes
}

func ParseJson[T any](str string, v *T) {
	if err := sonic.Unmarshal([]byte(str), v); err != nil {
		Logger.Errorf("parse json error:%v", err)
	}
}

func ParseJsonArray[T any](str string, v *[]T) {
	if err := sonic.Unmarshal([]byte(str), v); err != nil {
		Logger.Errorf("parse json array error:%v", err)
	}
}
